Skip to main content

修改输入表单字段键

变更场景

您希望在触发器、动作或搜索中更改一个或多个表单字段输入的键。

对用户的影响

修改表单字段输入的键是一种破坏性变更。

除非采取适当预防措施,否则更改现有表单字段输入的键将破坏该字段在相关步骤中的映射。之前映射的值将被丢弃,可能导致数据缺失和/或错误。

最佳实践

  • 避免更改表单字段输入键

如果您的 API 端点需要在请求中使用不同的属性,请考虑更改该属性键,而不是修改表单字段输入的键。

表单字段输入键并不一定需要与 API 期望的属性匹配。

假设您有一个键为 first_name 的表单字段输入(右侧),并使用同名属性 first_name(左侧)将该字段的值发送到您的 API:

body: {
first_name: bundle.inputData.first_name; // 原始
}

然后,您的 API 进行了更改,并期望请求属性为 firstname(一个单词)。如下所示,您可以根据需要更改请求属性键(左侧,firstname),同时仍基于其原始键(first_name)引用表单字段输入(右侧):

body: {
firstname: bundle.inputData.first_name; // 新增 - 请求键和字段键可以不同
}
  • 处理旧键和新键

如果无法简单地更改硬编码的请求属性键:

我们建议您设计触发器或动作,以同时支持旧键和新键。

使用上述示例,假设您不是硬编码请求属性,而是将 bundle.inputData 扩展到 API 请求的 body 中,从而在字段键和请求属性之间建立一对一关系。

body: {
...bundle.inputData // 原始 - 请求键与字段键绑定
}

而非更改表单字段输入键,您可以使用代码模式(Platform UI)或代码(Platform CLI)来修改请求。

例如,以下示例中,我们创建一个新对象 payload,其中包含 bundle.inputData 中的所有字段以及更新的属性 firstname。然后我们删除旧属性 first_name,并在请求中发送更新后的对象:

// 复制 bundle.inputData,并添加更新后的属性
const payload = { ...bundle.inputData, firstname: bundle.inputData.first_name };

// 删除旧属性
delete payload.first_name;

body = {
...payload, // 发送更新后的 payload
};

通过这种方法或类似方法,您可以根据需要调整请求,而无需修改字段键,从而避免破坏用户的映射。